10 DATA C3,ED,75: ' JP INICIOPROGRAMA
20 ' - Procedure INICIALIZA
30 DATA 3E,01: ' LD A, 1
40 DATA CD,0E,BC: ' CALL &BC0E - SET MODE
50 DATA 3E,00: ' LD A, 0 - Constante: BLACK
60 DATA 47: ' LD B, A
70 DATA 3E,00: ' LD A, 0 - Constante: BLACK
80 DATA 4F: ' LD C, A
90 DATA 3E,00: ' LD A, 0
100 DATA CD,32,BC: ' CALL &BC32 - SET INK
110 DATA 3E,1A: ' LD A, 26 - Constante: WHITE
120 DATA 47: ' LD B, A
130 DATA 3E,1A: ' LD A, 26 - Constante: WHITE
140 DATA 4F: ' LD C, A
150 DATA 3E,01: ' LD A, 1
160 DATA CD,32,BC: ' CALL &BC32 - SET INK
170 DATA 3E,18: ' LD A, 24 - Constante: BRIGHTYELLOW
180 DATA 47: ' LD B, A
190 DATA 3E,18: ' LD A, 24 - Constante: BRIGHTYELLOW
200 DATA 4F: ' LD C, A
210 DATA 3E,02: ' LD A, 2
220 DATA CD,32,BC: ' CALL &BC32 - SET INK
230 DATA 3E,19: ' LD A, 25 - Constante: PALEYELLOW
240 DATA 47: ' LD B, A
250 DATA 3E,19: ' LD A, 25 - Constante: PALEYELLOW
260 DATA 4F: ' LD C, A
270 DATA 3E,03: ' LD A, 3
280 DATA CD,32,BC: ' CALL &BC32 - SET INK
290 DATA 3E,00: ' LD A, 0
300 DATA CD,96,BB: ' CALL &BB96 - SET PAPER
310 DATA C9: ' RET - Retorno de proced.
320 ' - Procedure LINEAHORIZONTAL
330 DATA 3E,01: ' LD A, 1
340 DATA 32,34,75: ' LD (30004), A - Asignacion: I=1
350 ' Etiqueta de salto: FOR_1, posicion: 30163
360 ' IF 10<I
370 DATA 3A,34,75: ' LD A, (30004) - Variable: I
380 DATA 47:' LD B, A (I)
390 DATA 3E,0A: ' LD A, 10
400 DATA B8:' CP B
410 DATA FA:' JP M
420 DATA EC,75: ' direcc de salto FIN_FOR_1
430 DATA 3E,2A: ' LD A, "*"
440 DATA CD,5A,BB: ' CALL &BB5A - WRITECHAR
450 DATA 3A,34,75: ' LD A, (30004) - Variable: I
460 DATA 3C :' INC A
470 DATA 32,34,75: ' LD (30004), A - Incremento: I+1
480 DATA C3,D3,75: ' JP FOR_1
490 ' Etiqueta de salto: FIN_FOR_1, posicion: 30188
500 DATA C9: ' RET - Retorno de proced.
510 ' -- Cuerpo del programa
520 ' Etiqueta de salto: INICIOPROGRAMA, posicion: 30189
530 '  Llamada a procedimiento: INICIALIZA
540 DATA CD: ' CALL - Llamada a proced.
550 DATA 97,75: ' direcc de salto INICIALIZA
560 DATA 3E,02: ' LD A, 2
570 DATA CD,6F,BB: ' CALL &BB6F - CURSOR COLUMN
580 DATA 3E,02: ' LD A, 2
590 DATA CD,72,BB: ' CALL &BB72 - CURSOR ROW
600 ' -- Escritura de cadena
610 DATA C3,0B,76: ' JP saltoIniALLAVAMOS...
620 ' txtALLAVAMOS...: 30205
630 DATA 41,6C,6C,61,20,76,61,6D,6F,73,2E,2E,2E,00: 'Texto: Alla vamos...
640 ' saltoIniALLAVAMOS...: 30219
650 DATA 11: ' LD DE, texto
660 DATA FD,75: ' direcc de salto txtALLAVAMOS...
670 ' saltoRepALLAVAMOS...: 30222
680 DATA 1A: ' LD A, (DE)
690 DATA B7: ' OR A
700 DATA CA: ' JP Z - Salir
710 DATA 1A,76: ' direcc de salto finALLAVAMOS...
720 DATA CD,5A,BB: 'CALL &BB5A - WRITECHAR
730 DATA 13: ' INC DE
740 DATA C3,0E,76: ' JP saltoRepALLAVAMOS...
750 ' Etiqueta de salto: finALLAVAMOS..., posicion: 30234
760 ' -- Fin de escritura de cadena
770 DATA 3E,0A: ' LD A, 10
780 DATA CD,6F,BB: ' CALL &BB6F - CURSOR COLUMN
790 DATA 3E,03: ' LD A, 3
800 DATA CD,72,BB: ' CALL &BB72 - CURSOR ROW
810 DATA 3E,01: ' LD A, 1
820 DATA CD,90,BB: ' CALL &BB90 - SET PEN
830 '  Llamada a procedimiento: LINEAHORIZONTAL
840 DATA CD: ' CALL - Llamada a proced.
850 DATA CE,75: ' direcc de salto LINEAHORIZONTAL
860 DATA 3E,02: ' LD A, 2
870 DATA CD,90,BB: ' CALL &BB90 - SET PEN
880 DATA 3E,04: ' LD A, 4
890 DATA 32,35,75: ' LD (30005), A - Asignacion: J=4
900 ' Etiqueta de salto: FOR_2, posicion: 30262
910 ' IF 7<J
920 DATA 3A,35,75: ' LD A, (30005) - Variable: J
930 DATA 47:' LD B, A (J)
940 DATA 3E,07: ' LD A, 7
950 DATA B8:' CP B
960 DATA FA:' JP M
970 DATA 7D,76: ' direcc de salto FIN_FOR_2
980 DATA 3E,0A: ' LD A, 10
990 DATA CD,6F,BB: ' CALL &BB6F - CURSOR COLUMN
1000 DATA 3A,35,75: ' LD A, (30005) - Variable: J
1010 DATA CD,72,BB: ' CALL &BB72 - CURSOR ROW
1020 DATA 3E,2A: ' LD A, "*"
1030 DATA CD,5A,BB: ' CALL &BB5A - WRITECHAR
1040 DATA 3E,01: ' LD A, 1
1050 DATA 32,36,75: ' LD (30006), A - Asignacion: K=1
1060 ' Etiqueta de salto: FOR_3, posicion: 30293
1070 ' IF 8<K
1080 DATA 3A,36,75: ' LD A, (30006) - Variable: K
1090 DATA 47:' LD B, A (K)
1100 DATA 3E,08: ' LD A, 8
1110 DATA B8:' CP B
1120 DATA FA:' JP M
1130 DATA 6E,76: ' direcc de salto FIN_FOR_3
1140 DATA 3E,20: ' LD A, " "
1150 DATA CD,5A,BB: ' CALL &BB5A - WRITECHAR
1160 DATA 3A,36,75: ' LD A, (30006) - Variable: K
1170 DATA 3C :' INC A
1180 DATA 32,36,75: ' LD (30006), A - Incremento: K+1
1190 DATA C3,55,76: ' JP FOR_3
1200 ' Etiqueta de salto: FIN_FOR_3, posicion: 30318
1210 DATA 3E,2A: ' LD A, "*"
1220 DATA CD,5A,BB: ' CALL &BB5A - WRITECHAR
1230 DATA 3A,35,75: ' LD A, (30005) - Variable: J
1240 DATA 3C :' INC A
1250 DATA 32,35,75: ' LD (30005), A - Incremento: J+1
1260 DATA C3,36,76: ' JP FOR_2
1270 ' Etiqueta de salto: FIN_FOR_2, posicion: 30333
1280 DATA 3E,0A: ' LD A, 10
1290 DATA CD,6F,BB: ' CALL &BB6F - CURSOR COLUMN
1300 DATA 3E,08: ' LD A, 8
1310 DATA CD,72,BB: ' CALL &BB72 - CURSOR ROW
1320 DATA 3E,03: ' LD A, 3
1330 DATA CD,90,BB: ' CALL &BB90 - SET PEN
1340 '  Llamada a procedimiento: LINEAHORIZONTAL
1350 DATA CD: ' CALL - Llamada a proced.
1360 DATA CE,75: ' direcc de salto LINEAHORIZONTAL
1370 DATA 3E,14: ' LD A, 20
1380 DATA CD,6F,BB: ' CALL &BB6F - CURSOR COLUMN
1390 DATA 3E,14: ' LD A, 20
1400 DATA CD,72,BB: ' CALL &BB72 - CURSOR ROW
1410 ' -- Escritura de cadena
1420 DATA C3,AD,76: ' JP saltoIniHEMOSTERMINADO!
1430 ' txtHEMOSTERMINADO!: 30364
1440 DATA 48,65,6D,6F,73,20,74,65,72,6D,69,6E,61,64,6F,21,00: 'Texto: Hemos terminado!
1450 ' saltoIniHEMOSTERMINADO!: 30381
1460 DATA 11: ' LD DE, texto
1470 DATA 9C,76: ' direcc de salto txtHEMOSTERMINADO!
1480 ' saltoRepHEMOSTERMINADO!: 30384
1490 DATA 1A: ' LD A, (DE)
1500 DATA B7: ' OR A
1510 DATA CA: ' JP Z - Salir
1520 DATA BC,76: ' direcc de salto finHEMOSTERMINADO!
1530 DATA CD,5A,BB: 'CALL &BB5A - WRITECHAR
1540 DATA 13: ' INC DE
1550 DATA C3,B0,76: ' JP saltoRepHEMOSTERMINADO!
1560 ' Etiqueta de salto: finHEMOSTERMINADO!, posicion: 30396
1570 ' -- Fin de escritura de cadena
1580 DATA 3E,01: ' LD A, 1
1590 DATA CD,90,BB: ' CALL &BB90 - SET PEN
1600 DATA C9: ' RET
1610 longitud = 301
1620 MEMORY 29999
1630 'Codigo del programa
1640 FOR n=30100 TO 30100+longitud
1650   READ a$:POKE n,VAL("&"+a$)
1660 NEXT
1670 'Espacio para variables
1680 FOR n=30000 TO 30099
1690   POKE n,0
1700 NEXT
1710 POKE 30000, &CD: 'inicio: CALL 30100
1720 POKE 30001, &94
1730 POKE 30002, &75
1740 CALL 30000
